-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rational points of varieties/schemes #2627
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with the choice of specifying coordinates in the ambient affine space. This coincides with the literature.
Overall I agree with your approach, but there are a few details which I would like to think through (and then -- in case of doubt -- ask you based on specifically constructed examples) to make sure that we do not mess up in corner cases.
From my point of view this is ready to go. Rational points in projective space will be a different issue. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feel free to merge, as soon as the tests pass.
P.S.: My Milnor-PR is behind yours, because I would like to also allow your rational points in the input. |
Please close and reopen the PR to use the tests without the ones from duVal tests and FTheory tests affected by random error effects, which are currently being investigated. |
After some discussion with @JHanselman we decided that point should have a parent point set. |
Rewrite with sets of rational points. |
Let |
Mathematically it should return a scheme point of X (as X is a scheme). But I think in practice (and for computational purposes) it would be easier if it returned a rational point. I think that is also how Magma does it. |
I need to e.g. to localize at a specified point or evaluate at it. @JHanselman on the other hand might have completely different operations in mind. So the 'right' choice will always be influenced by what the specific user expects. On the other hand, passage from one to the other should be available in any case and make this a minor question. A more general remark: |
I have been pondering your change of the meaing of |
The rational point set is basically an almost empty hull just like our rings, e.g.
It would of course still be possible to work around all of this, by storing everything directly in the points/scheme. |
We are kind of in both worlds. Silverman in his arithmetic of elliptic curves, does it in coordinates and can hence avoid the language of schemes a k-rational point is a tuple of elements of k. Hartshorne defines them in a coordinate free fashion as a homset. |
Your argument about the point_set being designed as an empty hull dispells my doubt. Thanks a lot !!! I am aware of the difference between rational points and closed points under base change (one of the reasons why I am happy to have access to both). The most important argument for the point_set for me is considering P-points of X/k without fully creating X/P. Summing this up: This is green light for the changed perspective from me. Concerning the differences in literature between Silverman and Hartshorne: As we expect to have users from both worlds, we need to cater to their different needs anyway. We will probably end up with a few extra aliases for functions to allow people from the respective other world to intuitively find in their terminology, what they are looking for. (E.g. 'codomain' is far from intuitive for someone in the terminology of Silverman.) But we can leave this for a later PR. |
```jldoctest | ||
julia> P2 = projective_space(QQ, 2) | ||
|
||
julia> P2([4, 0 , 2//3]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doctest is missing the return values.
A first draft for rational points @JHanselman @fieker @afkafkafk13 @jankoboehm
If this goes in the right direction, I will continue with projective points (over fields, over rings they seem to be quite complicated and not always given by a vector of coordinates in fact).
I won't treat weighted projective points yet, because we do not have a working weighted projective space as a scheme as far as I know.
Here are some thoughts:
A k-rational point is a vector of coordinates that knows where it lives.
Therefore it should have a parent. This parent is an affine scheme. It can be affine space or any affine subscheme of it. For instance an elliptic curve.
The k-point lives in affine space too. Therefore two k-points of two varieties in the same ambient affine space can be compared. But if the ambient affine spaces are different, then they compare as not equal, e.g.
returns false because
X1
andX2
are not equal.A k-point P of X defines a maximal ideal. Where should this ideal live? From a theoretical point of view, the coordinate ring of its parent X is a valid choice. But from a computational/practical point of view I would say in the coordinate polynomial ring of its ambient affine space is better. This is how I implemented it for the moment.
Note that the points
[1, 1]
in affine space over QQ and the point[1, 1]
over QQ[i] compare as not equal.This is because their ambient affine spaces compare as not equal and consistent with the fact that we do not
identify QQ[x,y] as a subset of QQ[i][x,y] automatically either.